package com.hwpt.utils;

import java.util.Random;

public class ImageUrlGenerator {
    
    private static final String BASE_URL = "http://192.168.93.246:9006/image-resource/images/";
    private static final Random RANDOM = new Random();
    
    /**
     * 生成基于图像元数据的随机URL
     */
    public static String generateImageUrl(ImageMetaData metaData) {
        // 使用MD5哈希的前8个字符和随机数来创建唯一标识符
        String md5Prefix = metaData.getFileMd5().substring(0, 8);
        int randomSuffix = RANDOM.nextInt(10000);
        
        // 获取文件扩展名
        String extension = getFileExtension(metaData.getFileName());
        
        return BASE_URL + md5Prefix + "_" + randomSuffix + extension;
    }
    
    /**
     * 从文件名中提取文件扩展名
     */
    private static String getFileExtension(String fileName) {
        int lastDotIndex = fileName.lastIndexOf('.');
        if (lastDotIndex > 0) {
            return fileName.substring(lastDotIndex);
        }
        // 如果没有扩展名，根据MIME类型推断
        return ".png"; // 默认使用.png
    }
    
    /**
     * 根据MIME类型获取文件扩展名（备用方法）
     */
    private static String getExtensionFromMimeType(String mimeType) {
        switch (mimeType) {
            case "image/jpeg":
                return ".jpg";
            case "image/png":
                return ".png";
            case "image/gif":
                return ".gif";
            case "image/webp":
                return ".webp";
            case "image/bmp":
                return ".bmp";
            default:
                return ".png";
        }
    }
    
    /**
     * 生成增强版本的URL（使用MD5和文件大小）
     */
    public static String generateEnhancedImageUrl(ImageMetaData metaData) {
        String md5Prefix = metaData.getFileMd5().substring(0, 6);
        String sizeSuffix = String.valueOf(metaData.getFileSize() % 10000);
        String extension = getExtensionFromMimeType(metaData.getMimeType());
        
        return BASE_URL + md5Prefix + "_" + sizeSuffix + extension;
    }
}